1. Field of the Invention
The present invention relates to mathematical programming for optimization based applications in general and more particularly to an apparatus and method for providing a goal programming and goal weighting user interface.
2. Description of the Related Art
Mathematical Programming, a branch of Operations Research is one of the fundamental drivers of productivity improvement in the industrial age. Operations Research's main techniques rely on powerful algorithms such as linear programming. Those methods require its user, a specially trained technician with a significant background in mathematics, to model the behavior of complex machinery, such as a full industrial plant, as a set of mathematical constraints. Those constraints link, for instance, the capacity of production of a machine to its energy consumption, its cost and the time taken for a given production. Once the constraints are described (the model is defined), the user needs to define an objective of production. That is to say, describe a desired production to be achieved in the form of variable instantiations, as well as a further set of mathematical equations involving a further set of variables which must be optimized. For instance, to say that the cost of a production should be minimized, the user will specify a constraint (as a linear expression of variables and ponderations) under the form of “The sum of all the costs induced by each piece of machinery used in the production is to be as small as possible”.
One important aspect of the objective function is that it involves a multiplicity of concurring aspects such as Final Cost, Workload, Regulations and Delays to name a few. All these aspects need to be balanced against each other properly and hierarchized (for example, try to minimize first the final cost, then, once within a reasonably small cost estimate, try to minimize the workload, and finally the time taken to create a given production).
The specification of the constraints to be respected requires, for the most part, a deep technical knowledge of the machinery and some expertise with the mathematics involved in the description. However, the specification of the goals to be reached, and their balance, involves more strategic decisions, which are related to the business and susceptible to evolve over time. Consequently, non-technical users must be allowed to specify, or at least, customize the objective functions, without requiring a complete understanding of the underlying mathematics involved in the optimization process. This requires informing as much as possible the user about the meaning of the expression they enter, as well as preventing nonsensical entries.
In this sense, goal weighting consists in combing an arbitrary number of objectives (also known as “goals”), by multiplying each goal by a real number (coefficient), and adding the results together, thus building a unique “super-goal”. Goal programming consists in sequencing an arbitrary number of goals. Each goal is then optimized in sequence, and the value obtained for goal at step n is input as a constraint for step n+1. Rather notable is that most operations research experts use goal weighting rather than goal programming, because goal programming requires an ad hoc programmatic implementation. It would be advantageous to combine both goal weighting and goal programming by first assembling goals in super-goals (weighting) and then sequencing the super-goals.